import java.util.prefs.BackingStoreException;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 23735
 * Date: 2022-10-31
 * Time: 21:47
 */
class Solution {
    public boolean backspaceCompare(String s, String t) {
        int index1=s.length()-1;
        int index2=t.length()-1;
        while(index1>=0&&index2>=0){
            int flag1=0;//标志是否遇到过#
            int flag2=0;//标志是否遇到过#
            int count1=0;//统计遇到的#的个数
            int count2=0;//统计遇到的#的个数
            char ch1=s.charAt(index1);
            char ch2=t.charAt(index2);
            if(ch1!='#'&&ch2!='#'&&ch1!=ch2){
                return false;
            }
            while(ch1=='#'){
                count1++;
                while(count1>0&&index1>0){
                    index1--;
                    ch1=s.charAt(index1);
                    if(ch1=='#'){
                        count1++;
                    }else{
                        count1--;
                    }
                }
                index1--;
                flag1=1;
                if(index1>=0){
                    ch1=s.charAt(index1);
                }else{
                    break;
                }
            }
            while(ch2=='#'){
                count2++;
                while(count2>0&&index2>0){
                    index2--;
                    ch2=t.charAt(index2);
                    if(ch2=='#'){
                        count2++;
                    }else{
                        count2--;
                    }
                }
                index2--;
                flag2=1;
                if(index2>=0){
                    ch2=t.charAt(index2);
                }else{
                    break;
                }
            }
            //只有两个都没有遇到#才用--
            //其他情况都不用--(对于遇到#的已经减过了,没有遇到的就不用减)
            if(flag1==0&&flag2==0){
                index1--;
                index2--;
            }
        }
        //再判断没有读完的剩下的是不是都可以被覆盖
        //如果不是那么就是false
        //如果剩下的都可以被覆盖那么就是true
        while(index1>=0){
            int count1=0;
            char ch1=s.charAt(index1);
            if(ch1!='#'){
                return false;
            }
            while(ch1=='#'){
                count1++;
                while(count1>0&&index1>0){
                    index1--;
                    ch1=s.charAt(index1);
                    if(ch1=='#'){
                        count1++;
                    }else{
                        count1--;
                    }
                }
                index1--;
                if(index1>=0){
                    ch1=s.charAt(index1);
                }else{
                    break;
                }
            }
        }

        while(index2>=0){
            int count2=0;
            char ch2=t.charAt(index2);
            if(ch2!='#'){
                return false;
            }
            while(ch2=='#'){
                count2++;
                while(count2>0&&index2>0){
                    index2--;
                    ch2=t.charAt(index2);
                    if(ch2=='#'){
                        count2++;
                    }else{
                        count2--;
                    }
                }
                index2--;
                if(index2>=0){
                    ch2=t.charAt(index2);
                }else{
                    break;
                }
            }
        }
        return true;
    }
}
